Skip to content

ci: rename demo-gif workflow with a commit path, split quickstart into its own workflow - #56

Merged
open-coder-ai-org merged 3 commits into
mainfrom
launch/block1
Sep 9, 2026
Merged

ci: rename demo-gif workflow with a commit path, split quickstart into its own workflow#56
open-coder-ai-org merged 3 commits into
mainfrom
launch/block1

Conversation

@open-coder-ai-org

@open-coder-ai-org open-coder-ai-org commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

What

Block 1 of the launch-prep handover, two independent CI changes:

  1. render-demo.ymldemo-gif.yml, keeping the SHA-pinned workflow_dispatch render/upload
    path unchanged, and adding a push trigger (paths: ["docs/assets/demo.tape"],
    branches-ignore: [main]) that renders and commits the regenerated GIF back to the pushed
    branch via stefanzweifel/git-auto-commit-action, pinned to the commit SHA of tag v7.2.0
    (4a55954c782fc1ea30b9056cd3e7a2b40ca8887d, resolved via git ls-remote --tags). main is
    protected with no bypass, so the workflow can never push there; a tape change now carries its
    GIF into its own pull request instead of a manual artifact download.
  2. Quickstart moved out of ci.yml into its own .github/workflows/quickstart.yml
    (push, pull_request), still driven by tools/quickstart_block.py as the single source of
    the README's fenced bash block. The job also regenerates docs/quickstart.sh from that same
    block and fails if the committed copy has drifted, so the README stays the one source and the
    owner still gets a runnable script.

Definition of done

  • python -m ruff check . and python -m ruff format --check . clean
  • python -m pytest -q green (408 passed)
  • Schema changes — not applicable, no spec/ change
  • chock check / chock sync --repo . --check — not applicable, .agents/policies/ untouched

Claims

  • No row semantics touched; this PR is CI/workflow-only.

Verification

$ python -m pytest -q
408 passed in 13.23s

$ python -m ruff check .
All checks passed!

$ python -m ruff format --check .
235 files already formatted

The README's three cited report.json rows (reachability, fault.malformedOutput,
cost.context_tokens) were checked against a freshly produced report and match, inputHash
included.

Proof the quickstart job still fails on a broken block (edited the README's --n 20 to
--n 20 --nonexistent-flag, ran the same extract-and-run sequence the new workflow uses, then
reverted):

$ python3 tools/quickstart_block.py README.md > /tmp/quickstart.sh.broken   # (with the extra flag)
$ bash -euo pipefail /tmp/quickstart.sh.broken
...
usage: context-report [-h] {produce,efficacy,run,ingest-eval,judge,compare,verify} ...
context-report: error: unrecognized arguments: --nonexistent-flag
EXIT CODE: 2

README.md was restored byte-for-byte afterward (diff confirmed no residual change).

Checks confirmed, not changed

  • docs/assets/demo.gif is 149,521 bytes and was left exactly as-is (not compressed) per the
    handover — this repo's GIF is already small enough.
  • No open-coder-ai-org string and no stale owner in pyproject.toml; authors, all
    [project.urls], and the badge/image URLs already say open-coder-ai.

Deviations

  • The handover's ask for docs/quickstart.sh is satisfied without a second hand-maintained
    source: the new workflow generates it from the README's block via the existing
    tools/quickstart_block.py extractor and fails the build on drift, then the generated file is
    committed. tools/quickstart_block.py stays the single source of truth.
  • No verified SHA pin was available for a charmbracelet/vhs-action, so demo-gif.yml keeps
    the existing plain-binary VHS install (checksummed download) it already used; unchanged by
    this PR.

🤖 Generated with Claude Code

…shes

workflow_dispatch keeps rendering and uploading the demo-gif artifact
unchanged. A new push trigger, scoped to docs/assets/demo.tape on
non-default branches, renders and commits the regenerated GIF back to
the pushed branch via stefanzweifel/git-auto-commit-action (pinned to
the v7.2.0 tag's commit SHA) -- main is protected with no bypass, so
the workflow can never push there, and a tape change now carries its
GIF into its own pull request instead of requiring a hand-off.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
Moves the quickstart job out of ci.yml into a dedicated quickstart.yml
workflow (push, pull_request), still driven by tools/quickstart_block.py
as the single source of the README's fenced bash block. The job also
regenerates docs/quickstart.sh from that same block and fails the build
if the committed copy has drifted, so the owner gets a runnable script
without a second, hand-maintained source of the commands.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
@open-coder-ai-org
open-coder-ai-org marked this pull request as ready for review September 9, 2026 01:33
@open-coder-ai-org
open-coder-ai-org merged commit c647497 into main Sep 9, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants